Platform Explorer / Nuxeo Platform 5.8

Component org.nuxeo.ecm.platform.routing.actions

Contributions

XML Source

<?xml version="1.0" encoding="UTF-8"?>

<component name="org.nuxeo.ecm.platform.routing.actions">

  <require>org.nuxeo.ecm.platform.actions</require>

  <extension target="org.nuxeo.ecm.platform.actions.ActionService"
    point="actions">
    <action id="TAB_CONTENT">
      <filter-id>isNotRoute</filter-id>
    </action>

    <action id="TAB_DOCUMENT_ROUTE_CONTENT" link="/incl/tabs/document_route_content.xhtml"
      order="10" label="action.view.content" icon="/icons/file.gif">
      <category>TAB_MANAGE_sub_tab</category>
      <filter-id>isRoute</filter-id>
    </action>

    <action id="TAB_DOCUMENT_ROUTE_ELEMENTS" link="/incl/tabs/document_route_content_elements.xhtml"
      order="10" label="action.view.document.routing.elements" icon="/icons/file.gif">
      <category>VIEW_ACTION_LIST</category>
      <filter-id>isRoute</filter-id>
    </action>

    <action id="CANCEL_RELATED_ROUTE" link="#{routingActions.cancelRoute()}"
      order="10" label="label.document.routing.cancel.route">
      <category>ATTACHED_ROUTE_LIST</category>
      <filter-id>hasRelatedRouteStarted</filter-id>
      <filter-id>isEditableRoute</filter-id>
    </action>

    <action id="SAVE_ATTACHED_ROUTE_AS_NEW_INSTANCE" link="#{routingActions.saveRouteAsNewInstance()}"
      order="10" label="label.document.routing.saveAsNew">
      <category>ATTACHED_ROUTE_LIST</category>
      <filter-id>hasRelatedRouteStarted</filter-id>
    </action>

    <!-- TODO this action should not be seen globally
    <action id="SAVE_SELECTED_ROUTE_AS_NEW_INSTANCE"
      link="#{routingActions.saveSelectedRouteAsNewInstance()}" order="50"
      label="label.document.routing.saveAsNew">
      <category>CURRENT_SELECTION_LIST</category>
      <filter id="canDuplicateRouteInstance">
        <rule grant="true">
          <condition>#{routingActions.getCanDuplicateRouteInstance()}
          </condition>
        </rule>
      </filter>
    </action>
    -->

    <!-- TODO this action should not be seen globally
    <action id="SAVE_ROUTE_AS_NEW_INSTANCE" link="#{routingActions.saveRouteAsNewInstance()}"
      order="20" label="label.document.routing.saveAsNew">
      <category>SUBVIEW_UPPER_LIST</category>
      <category>ROUTE_LIST</category>
      <filter-id>isRoute</filter-id>
    </action>
    -->

    <action id="VALIDATE_ROUTE" link="#{routingActions.validateRouteModel()}"
      order="10" label="action.validate.document.routing.model">
      <category>ROUTE_LIST</category>
      <filter-id>isDraftRouteModel</filter-id>
      <filter id="canValidateRoute">
        <rule grant="true">
          <condition>#{routeSecurityChecker.canValidateRoute(currentDocument)}
          </condition>
        </rule>
      </filter>
    </action>

    <action id="ADD_STEP_BEFORE" label="command.add.routeelement.before"
      link="javascript:document.getElementById('selectRouteElementsTypeForCreationForm:hiddenDocOrder').value = 'before';Richfaces.showModalPanel('selectRouteElementsTypePanel');"
      icon="/icons/add.png">
      <category>ADD_STEP_ACTIONS_LIST</category>
      <filter-id>isNotRunning</filter-id>
      <filter-id>isEditableRoute</filter-id>
      <filter-id>isNotImutableConditionalStructure</filter-id>
    </action>

    <action id="ADD_STEP_AFTER" label="command.add.routeelement.after"
      link="javascript:document.getElementById('selectRouteElementsTypeForCreationForm:hiddenDocOrder').value = 'after';Richfaces.showModalPanel('selectRouteElementsTypePanel');"
      icon="/icons/add.png">
      <category>ADD_STEP_ACTIONS_LIST</category>
      <filter-id>isEditableRoute</filter-id>
      <filter-id>isNotImutableConditionalStructure</filter-id>
    </action>

    <action id="ADD_STEP_BETWEEN" label="command.add.routeelement.in"
      link="javascript:document.getElementById('selectRouteElementsTypeForCreationForm:hiddenDocOrder').value = 'in';Richfaces.showModalPanel('selectRouteElementsTypePanel');"
      icon="/icons/add.png">
      <category>ADD_STEP_IN_FORK_ACTIONS_LIST</category>
      <filter-id>isNotRunning</filter-id>
      <filter-id>isEditableRoute</filter-id>
    </action>

    <action id="REMOVE_STEP" label="command.delete" link="#{routingActions.removeStep}"
      icon="/icons/delete.png">
      <category>REMOVE_STEP_ACTIONS_LIST</category>
      <filter-id>isNotRunning</filter-id>
      <filter-id>isEditableRoute</filter-id>
      <filter-id>isNotImutableConditionalStructure</filter-id>
    </action>

    <action id="UPDATE_STEP" label="command.edit" link="#{routingActions.editStep}"
      icon="/icons/modify.png">
      <category>EDIT_STEP_ACTIONS_LIST</category>
      <filter-id>isNotRunning</filter-id>
      <filter-id>isEditableRoute</filter-id>
    </action>

    <action id="MOVE_STEP_UP" label="command.selection.moveUp"
      link="#{routingActions.moveRouteElement('up')}" icon="/icons/routing_move_up.png">
      <category>EDIT_STEP_ACTIONS_LIST</category>
      <filter-id>isNotRunning</filter-id>
      <filter-id>isEditableRoute</filter-id>
      <filter-id>isNotImutableConditionalStructure</filter-id>
    </action>

    <action id="MOVE_STEP_DOWN" label="command.selection.moveDown"
      link="#{routingActions.moveRouteElement('down')}" icon="/icons/routing_move_down.png">
      <category>EDIT_STEP_ACTIONS_LIST</category>
      <filter-id>isNotRunning</filter-id>
      <filter-id>isEditableRoute</filter-id>
      <filter-id>isNotImutableConditionalStructure</filter-id>
    </action>

    <action id="newDocument">
      <filter-id>create</filter-id>
      <filter-id>isNotDraftRouteModel</filter-id>
    </action>

    <!-- 'Workflow' tab when a document route is running -->
    <!--
    <action id="TAB_ROUTE_WORKFLOW" enabled="true"
      link="/incl/tabs/route_workflow.xhtml" label="action.view.review"
      icon="/icons/file.gif" order="60">
      <category>VIEW_ACTION_LIST</category>
      <filter-id>isRoutable</filter-id>
      <filter id="TAB_ROUTE_WORKFLOW_has_subtabs">
        <rule grant="false">
          <condition>
            #{webActions.getActionsList('TAB_ROUTE_WORKFLOW_sub_tab').isEmpty()}
          </condition>
        </rule>
      </filter>
    </action> -->

    <!-- 'Workflow' sub tab: current route -->
    <action id="TAB_ROUTE_WORKFLOW" enabled="true"
      link="/incl/tabs/current_route.xhtml" order="60"
      label="action.view.review">
      <category>VIEW_ACTION_LIST</category>
      <filter-id>hasRelatedRouteStarted</filter-id>
    </action>
    
   <action id="reassignTask" order="100" label="label.workflow.task.reassign"
      type="fancybox">
      <category>TASK_ADDITIONAL_ACTIONS</category>
      <filter-id>canBeReassign</filter-id>
      <properties>
        <property name="include">/incl/tasks/task_reassignment_box.xhtml</property>
        <property name="autoDimensions">true</property>
        <property name="modal">true</property>
        <property name="scrolling">auto</property>
        <property name="ajaxSupport">true</property>
      </properties>
    </action>
    
    <action id="delegateTask" order="110" label="label.workflow.task.delegation"
      type="fancybox">
      <category>TASK_ADDITIONAL_ACTIONS</category>
      <properties>
        <property name="include">/incl/tasks/task_delegation_box.xhtml</property>
        <property name="autoDimensions">true</property>
        <property name="modal">true</property>
        <property name="scrolling">auto</property>
        <property name="ajaxSupport">true</property>
      </properties>
    </action>

  </extension>

  <extension target="org.nuxeo.ecm.platform.actions.ActionService"
    point="filters">

    <filter id="create" append="true">
      <rule grant="true">
        <permission>AddChildren</permission>
        <type>DocumentRoute</type>
        <type>StepFolder</type>
      </rule>
    </filter>

    <filter id="isRoutable">
      <rule grant="true">
        <condition>#{routingActions.isRoutable()}</condition>
      </rule>
    </filter>

    <filter id="isRoute">
      <rule grant="true">
        <type>DocumentRoute</type>
      </rule>
    </filter>

    <filter id="isNotRoute">
      <rule grant="false">
        <type>DocumentRoute</type>
      </rule>
    </filter>

    <filter id="isDraftRouteModel">
      <rule grant="true">
        <condition>
          document.getCurrentLifeCycleState().equals("draft")
        </condition>
        <type>DocumentRoute</type>
      </rule>
    </filter>

    <filter id="isEditableRoute">
      <rule grant="true">
        <condition>#{userSession.administrator}</condition>
      </rule>
      <rule grant="true">
        <group>routeManagers</group>
      </rule>
      <rule grant="true">
        <permission>Manage everything</permission>
      </rule>
    </filter>


    <filter id="isValidatedRouteModel">
      <rule grant="true">
        <condition>
          document.getCurrentLifeCycleState().equals("validated")
        </condition>
        <type>DocumentRoute</type>
      </rule>
    </filter>

    <filter id="noRelatedRouteStarted">
      <rule grant="false">
        <condition>#{routingActions.hasRelatedRoute()}</condition>
      </rule>
    </filter>

    <filter id="hasRelatedRouteStarted">
      <rule grant="true">
        <condition>#{routingActions.hasRelatedRoute()}</condition>
      </rule>
    </filter>

    <filter id="isNotRunning">
      <rule grant="false">
        <condition>
          document.getCurrentLifeCycleState().equals("running")
        </condition>
      </rule>
    </filter>

    <filter id="isNotImutableConditionalStructure">
      <rule grant="false">
        <condition>
          #{documentManager.getParentDocument(document.getRef()).hasFacet("ConditionalStepFolder")}
        </condition>
      </rule>
    </filter>

    <filter id="isNotDraftRouteModel">
      <rule grant="false">
        <condition>
          !(document.getCurrentLifeCycleState().equals("draft"))
        </condition>
        <type>DocumentRoute</type>
        <type>StepFolder</type>
      </rule>
    </filter>

    <filter id="currentUserIsWorkflowInitatior">
      <rule grant="true">
       <condition>currentUser.administrator</condition>
       <condition>
        #{routingActions.getCurrentWorkflowInitiator().equals(currentUser.getName())}
       </condition>
      </rule>
    </filter>

    <filter id="canBeReassign">
      <rule grant="true">
        <condition>#{routingTaskActions.canBeReassign()}</condition>
      </rule>
    </filter>

  </extension>
</component>